﻿using System;
using mesoBoard.Common;
namespace mesoBoard.Services
{
    interface IThreads
    {
        bool CanLock(mesoBoard.Data.User theUser);
        void CreateThread(mesoBoard.Data.Thread thread, mesoBoard.Data.Post firstPost);
        void CreateThread(mesoBoard.Data.Thread thread, mesoBoard.Data.Post firstPost, string pollText, string pollOptions);
        mesoBoard.Data.Thread CreateThread(int forumID, int userID, int threadType, string threadImage, mesoBoard.Data.Post firstPost, string pollText, string[] pollOptions, System.Web.HttpFileCollectionBase files);
        System.Collections.Generic.IEnumerable<mesoBoard.Data.Thread> GetGlobalAnnouncements();
        System.Collections.Generic.IEnumerable<mesoBoard.Data.Thread> GetPagedThreads(int forumID, int pageNumber, int pageSize, mesoBoard.Common.OrderBy orderBy = OrderBy.Date, mesoBoard.Common.Direction direction = Direction.Descending);
        System.Collections.Generic.IEnumerable<mesoBoard.Data.Post> GetPosts(int threadID);
        mesoBoard.Data.Thread GetThread(int threadID);
        bool HasNewPost(int threadID, int userID);
        bool HasVoted(int threadID, int userID);
        bool IsSubscribed(int threadID, int userID);
        void Lock(int threadID);
        string Subscribe(int threadID, int userID);
        void ThreadViewed(int threadID, int userID);
        void Unlock(int threadID);
        void Unsubscribe(int threadID, int userID);
        void UpdateThread(mesoBoard.Data.Thread theThread, mesoBoard.Data.Post thePost, System.Web.HttpFileCollectionBase files);
    }
}
